﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class Juhiluba : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba {
        
        private string @__loaNr;
        
        private string @__loaTyyp;
        
        private string @__loaStaatus;
        
        private string @__loaStaatuseKp;
        
        private string @__kategooriad;
        
        private string @__valjaKp;
        
        private string @__katteKp;
        
        private string @__kehtivKp;
        
        private Juhiluba.ILisaandmedType @__lisaandmed;
        
        private bool @__juhilubaKehtib;
        
        public Juhiluba() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public Juhiluba(string @loaNr, string @loaTyyp, string @loaStaatus, string @loaStaatuseKp, string @kategooriad, string @valjaKp, string @katteKp, string @kehtivKp, Juhiluba.ILisaandmedType @lisaandmed, bool @juhilubaKehtib) {
            this.@__loaNr = @loaNr;
            this.@__loaTyyp = @loaTyyp;
            this.@__loaStaatus = @loaStaatus;
            this.@__loaStaatuseKp = @loaStaatuseKp;
            this.@__kategooriad = @kategooriad;
            this.@__valjaKp = @valjaKp;
            this.@__katteKp = @katteKp;
            this.@__kehtivKp = @kehtivKp;
            this.@__lisaandmed = @lisaandmed;
            this.@__juhilubaKehtib = @juhilubaKehtib;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public Juhiluba(string @loaNr, string @loaTyyp, string @loaStaatus, string @loaStaatuseKp, string @kategooriad, string @valjaKp, string @katteKp, Juhiluba.ILisaandmedType @lisaandmed, bool @juhilubaKehtib) {
            this.@__loaNr = @loaNr;
            this.@__loaTyyp = @loaTyyp;
            this.@__loaStaatus = @loaStaatus;
            this.@__loaStaatuseKp = @loaStaatuseKp;
            this.@__kategooriad = @kategooriad;
            this.@__valjaKp = @valjaKp;
            this.@__katteKp = @katteKp;
            this.@__lisaandmed = @lisaandmed;
            this.@__juhilubaKehtib = @juhilubaKehtib;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected Juhiluba(IJuhiluba @juhiluba) {
            this.@__loaNr = @juhiluba.LoaNr;
            this.@__loaTyyp = @juhiluba.LoaTyyp;
            this.@__loaStaatus = @juhiluba.LoaStaatus;
            this.@__loaStaatuseKp = @juhiluba.LoaStaatuseKp;
            this.@__kategooriad = @juhiluba.Kategooriad;
            this.@__valjaKp = @juhiluba.ValjaKp;
            this.@__katteKp = @juhiluba.KatteKp;
            this.@__kehtivKp = @juhiluba.KehtivKp;
            this.@__lisaandmed = @juhiluba.Lisaandmed;
            this.@__juhilubaKehtib = @juhiluba.JuhilubaKehtib;
        }
        
        public virtual string LoaNr {
            get {
                return this.@__loaNr;
            }
            set {
                this.@__loaNr = value;
            }
        }
        
        public virtual string LoaTyyp {
            get {
                return this.@__loaTyyp;
            }
            set {
                this.@__loaTyyp = value;
            }
        }
        
        public virtual string LoaStaatus {
            get {
                return this.@__loaStaatus;
            }
            set {
                this.@__loaStaatus = value;
            }
        }
        
        public virtual string LoaStaatuseKp {
            get {
                return this.@__loaStaatuseKp;
            }
            set {
                this.@__loaStaatuseKp = value;
            }
        }
        
        public virtual string Kategooriad {
            get {
                return this.@__kategooriad;
            }
            set {
                this.@__kategooriad = value;
            }
        }
        
        public virtual string ValjaKp {
            get {
                return this.@__valjaKp;
            }
            set {
                this.@__valjaKp = value;
            }
        }
        
        public virtual string KatteKp {
            get {
                return this.@__katteKp;
            }
            set {
                this.@__katteKp = value;
            }
        }
        
        public virtual string KehtivKp {
            get {
                return this.@__kehtivKp;
            }
            set {
                this.@__kehtivKp = value;
            }
        }
        
        public virtual Juhiluba.ILisaandmedType Lisaandmed {
            get {
                return this.@__lisaandmed;
            }
            set {
                this.@__lisaandmed = value;
            }
        }
        
        public virtual bool JuhilubaKehtib {
            get {
                return this.@__juhilubaKehtib;
            }
            set {
                this.@__juhilubaKehtib = value;
            }
        }
        
        public partial class LisaandmedType : ILisaandmedType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IEritingimus> @__eritingimus = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IEritingimus>();
            
            public LisaandmedType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public LisaandmedType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IEritingimus> @eritingimus) {
                this.@__eritingimus = @eritingimus;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected LisaandmedType(ILisaandmedType @lisaandmedType) {
                this.@__eritingimus = @lisaandmedType.Eritingimus;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IEritingimus> Eritingimus {
                get {
                    return this.@__eritingimus;
                }
                set {
                    this.@__eritingimus = value;
                }
            }
        }
        
        public interface ILisaandmedType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IEritingimus> Eritingimus {
                get;
                set;
            }
        }
    }
}
